package com.SparkCore.RDD.Operator.Transform

import org.apache.spark.{SparkConf, SparkContext}

/**
 * 实现Spark的并行计算
 */
object Spark01_RDD_Operator_Transform_Par {

  def main(args: Array[String]): Unit = {

    //创建环境
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("RDD")
    val sc = new SparkContext(sparkConf)

    //RDD算子 - map

    /**
     * RDD 的计算分区一个分区内的数据是一个一个执行逻辑
     * 只有前面分区内的数据全部逻辑执行完以后才会执行下一个数据
     * 分区内数据的执行是有序的
     *
     * 不同分区数据计算是无序的
     */

    val rdd = sc.makeRDD(List(1,2,3,4) , 1)

    val makeRDD = rdd.map(
        num => {
          println(">>>>>>> " + num)
          num
        }
    )

    val makeRDD1 = makeRDD.map(
      num => {
        println(">####### " + num)
        num
      }
    )

    makeRDD1.collect()

    //关闭
    sc.stop()

  }
}
